package com.kcwl.carrier.infrastructure.repository.persostence;

import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.kcwl.carrier.domain.condition.BizTagsRefCondition;
import com.kcwl.carrier.domain.entity.BizTagsRefInfo;
import com.kcwl.carrier.domain.repository.IBizTagsRefRepository;
import com.kcwl.carrier.infrastructure.repository.mapper.BizTagsRefMapper;
import com.kcwl.carrier.infrastructure.repository.po.BizTagsRefPO;
import com.kcwl.ddd.domain.repository.BaseRepositoryImpl;
import com.kcwl.framework.utils.KcBeanConverter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author wulihai
 * @date 2019-04-10
 */
@Slf4j
@Service
public class BizTagsRefRepositoryImpl extends BaseRepositoryImpl<BizTagsRefMapper, BizTagsRefPO> implements IBizTagsRefRepository {
    @Resource
    private BizTagsRefMapper bizTagsRefMapper;

    @Override
    public List<BizTagsRefInfo> queryList(BizTagsRefCondition condition) {

        QueryWrapper<BizTagsRefPO> wrapper = new QueryWrapper<>();
        wrapper.eq(ObjectUtil.isNotEmpty(condition.getId()), "id", condition.getId());
        wrapper.eq(ObjectUtil.isNotEmpty(condition.getBizId()), "biz_id", condition.getBizId());
        wrapper.eq(ObjectUtil.isNotEmpty(condition.getBizType()), "biz_type", condition.getBizType());
        wrapper.eq(ObjectUtil.isNotEmpty(condition.getTagId()), "tag_id", condition.getTagId());
        wrapper.eq(ObjectUtil.isNotEmpty(condition.getSort()), "sort", condition.getSort());
        wrapper.eq(ObjectUtil.isNotEmpty(condition.getId()), "create_time", condition.getId());
        wrapper.in(!CollectionUtils.isEmpty(condition.getBizIds()), "biz_id", condition.getBizIds());
        List<BizTagsRefPO> list = bizTagsRefMapper.selectList(wrapper);
        return KcBeanConverter.toList(list, BizTagsRefInfo.class);
    }
}
